package cn.tqfeiyang.smartadmin.commons.toolbox;

import cn.hutool.crypto.digest.MD5;
import cn.hutool.extra.spring.SpringUtil;
import cn.tqfeiyang.smartadmin.commons.application.SmartAdminConfig;

import java.nio.charset.StandardCharsets;

/**
 * 密码工具类
 *
 * @author tqfeiyang
 * @since 2024/8/24 9:52
 */
public class PasswordUtils {

    private PasswordUtils() {}

    /**
     * 加密字符串
     *
     * @param plaintext 明文
     * @return 加密后的字符串
     */
    public static String encrypt(String plaintext) {
        SmartAdminConfig config = SpringUtil.getBean(SmartAdminConfig.class);
        return encrypt(plaintext, config.getMd5Salt());
    }

    /**
     * 加密字符串
     *
     * @param plaintext 明文
     * @param salt 盐值
     * @return 加密后的字符串
     */
    public static String encrypt(String plaintext, String salt) {
        MD5 md5 = new MD5(salt.getBytes(StandardCharsets.UTF_8));
        return md5.digestHex(plaintext);
    }

}
